#ifndef GRAPHIC_DEVICE_GRAPHIC_OBJECT_H
#define GRAPHIC_DEVICE_GRAPHIC_OBJECT_H
#include "predefine.h"
namespace Graphic
{
	//////////////////////////////////////////////////////////////////////////
	// Object
	//////////////////////////////////////////////////////////////////////////
	class DLL_EXPORT IGObject
	{
	public:
		virtual ~IGObject(){}

		virtual bool IsValid()		= 0;
		virtual int	 GetHandle()	= 0;
		virtual void Release()		= 0;
	};

	enum DataType{
		DT_FLOAT,	DT_FLOAT1,	DT_FLOAT2,	DT_FLOAT3,	DT_FLOAT4,
		DT_INT,		DT_INT1,	DT_INT2,	DT_INT3,	DT_INT4,
		DT_SHORT,	DT_SHORT1,	DT_SHORT2,	DT_SHORT3,	DT_SHORT4,
		DT_MAT44,	DT_MAT33,	DT_MAT22,
		DT_BYTE,	DT_WORD,	DT_DWORD,
	};
	struct AttribLocation{
		int location;
		const char* name;
		/*
		AttribLocation()
			: location(0)
			, name("")
		{
		
		}
		*/
	};
	struct AttribDeclaration{
		int index;
		int location;
		int type;
		int offset;
		int strip;
		bool normalize;

		/*
		AttribDeclaration()
			: index(0)
			, location(0)
			, type(DT_FLOAT3)
			, offset(0)
			, strip(0)
			, normalize(false)
		{

		}
		*/
	};
}
#endif